/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Source;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

/**
 *
 * @author luisfernando
 */
public class Status_DAO implements DAO {

    private String queryBD;
    ConexionDB conexion;
    LinkedList<Status_POJO> listaDetalle = new LinkedList<Status_POJO>();
    ResultSet resultado;
    private String temp;

    public Status_DAO() {
        this.conexion = new ConexionDB();
    }

    @Override
    public LinkedList<Status_POJO> obtenerReg(int Id) throws SQLException {

        
        temp = "SELECT * FROM Status WHERE idStatus = ?";
        PreparedStatement ps=conexion.prepareStatement(temp);
        ps.setInt(1,Id);
        //System.out.println("Query obtener " + queryBD);
        try {

            conexion.abrirConexion();
            resultado = ps.executeQuery();

            if (resultado.next()) {

                Status_POJO status = new Status_POJO();

                status.setIdStatus(Integer.parseInt(resultado.getString("IdStatus")));
                status.setNombre(resultado.getString("nombre"));

                listaDetalle.add(status);



            }
            ps.close();
            conexion.cerrarConexion();
        } catch (Exception ex) {

            System.out.println("Error " + ex);

        }
        return listaDetalle;
    }

    public int guardarReg(String nombre) throws SQLException {
        temp="INSERT INTO Status (nombre) VALUES (?)";
        PreparedStatement ps=conexion.prepareStatement(temp);
        ps.setString(1,nombre);

        queryBD = "INSERT INTO Status (nombre) VALUES ("
                + "'" + nombre + "')";
        System.out.println("Query Guardar " + queryBD);

        try {

            conexion.abrirConexion();
            int resultadoC = ps.executeUpdate();
            ps.close();
            conexion.cerrarConexion();
            return resultadoC;



        } catch (Exception ex) {

            System.out.println("error " + ex);
            return -1;

        }


    }

    public int actualizarReg(int idStatus, String nombre) throws SQLException {


        temp = "UPDATE Status SET nombre=? WHERE idStatus = ?" + idStatus;
        PreparedStatement ps=conexion.prepareStatement(temp);
        ps.setString(1,nombre);
        ps.setInt(2, idStatus);


        System.out.println("Query update " + queryBD);
        try {
            conexion.abrirConexion();
            int resultadoC = ps.executeUpdate();
            ps.close();
            conexion.cerrarConexion();
            return resultadoC;


            //System.out.println ("Update exitoso");

        } catch (Exception ex) {
            System.out.println("Error " + ex);
            return -1;
        }
    }

    @Override
    public int eliminarReg(int id) throws SQLException {

        temp = "DELETE FROM Status WHERE idStatus = ?";
        PreparedStatement ps=conexion.prepareStatement(temp);
        ps.setInt(1, id);
       // System.out.println("Query delete " + queryBD);
        try {
            conexion.abrirConexion();
            int resultadoC = ps.executeUpdate();
            ps.close();
            conexion.cerrarConexion();
            return resultadoC;


        } catch (Exception ex) {
            System.out.println("Error " + ex);
            return -1;
        }

    }
}
